package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import org.omg.PortableServer.POA;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdDtlDTO;
import cn.fl.project.vo.PrjPrdDtlVO;

 /**
 * @Description: 项目产品明细信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjPrdDtlVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjPrdDtlDTO
	 * @return PrjPrdDtlVO
	 */
	public static PrjPrdDtlVO toVO(PrjPrdDtlDTO dto) {
		PrjPrdDtlVO  vo = null;
		if (dto != null) { 
			vo = new PrjPrdDtlVO();
			vo.setId(dto.getId());
			vo.setPrjPrdId(dto.getPrjPrdId());//项目产品ID
			vo.setPrdId(dto.getPrdId());//产品ID
			vo.setPrdNm(dto.getPrdNm());//产品名称
			vo.setPrdMdl(dto.getPrdMdl());//产品型号
			vo.setPrdQty(dto.getPrdQty());//产品数量（自动拆分为1）
			vo.setInsStsCd(dto.getInsStsCd());//投保状态（INS0016）
			vo.setPaySchId(dto.getPaySchId());//支付表ID
			vo.setPaySchNo(dto.getPaySchNo());//支付表编号
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setInsStsCdNm(dto.getInsStsCdNm());//投保状态名称
			
			vo.setPrdDtlId(dto.getPrdDtlId());//产品明细ID
			vo.setActPrdId(dto.getActPrdId());//实际车辆ID
			vo.setPrjId(dto.getPrjId());//项目ID
			vo.setGpsCardNo(dto.getGpsCardNo());//GPS卡号（重卡）
			vo.setLnkCompId(dto.getLnkCompId());//挂靠公司ID（重卡）
			vo.setLnkCompNm(dto.getLnkCompNm());//挂靠公司名称（重卡）
			vo.setInsStsCdNm(dto.getInsStsCd());//资产状态
			vo.setBackDt(dto.getBackDt());//拖回时间
			vo.setFormDt(dto.getFormDt());//转正时间
			vo.setStlDt(dto.getStlDt());//结清时间
			vo.setPrdStsCd(dto.getPrdStsCd());//资产状态
			vo.setPrdStsCdNm(dto.getPrdStsCdNm());
			vo.setGpsCardNo2(dto.getGpsCardNo2());//GPS卡号2
			vo.setVin(dto.getVin());//vin
			vo.setPaySchTId(dto.getPaySchTId());//报价版支付表ID
			vo.setCertNo(dto.getCertNo());
			vo.setPrjLnkCompVO(PrjLnkCompVOTransform.toVO(dto.getPrjLnkCompDTO()));
			vo.setEngMdl(dto.getEngMdl());
			vo.setGpsTypCd(dto.getGpsTypCd());
			vo.setGpsTypCd2(dto.getGpsTypCd2());
			vo.setGpsMfr(dto.getGpsMfr());
			vo.setGpsMfr2(dto.getGpsMfr2());
			vo.setDueDt(dto.getDueDt());
			vo.setEngNo(dto.getEngNo());
			vo.setPrjPrdVehInfo(PrjPrdVehInfoVOTransform.toVO(dto.getPrjPrdVehInfo()));
			vo.setPrjPrdBscInfo(PrjPrdBscInfoVOTransform.toVO(dto.getPrjPrdBscInfo()));
			vo.setPrjPrdPaySchM(PrjPrdPaySchMVOTransform.toVO(dto.getPrjPrdPaySchM()));
			vo.setActPayTm(dto.getActPayTm());
			
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			vo.setGpsInstallUsr(dto.getGpsInstallUsr());//GPS安装人
			vo.setGpsInstall(dto.getGpsInsrall());//GPS是否安装
			vo.setVinValidRes(dto.getVinValidRes());
			vo.setVinValidResNm(dto.getVinValidResNm());

			vo.setVehNo(dto.getVehNo());

			vo.setCardCity(dto.getCardCity());

			vo.setLnkCompLcvStatus(dto.getLnkCompLcvStatus());
			vo.setLsCntNo(dto.getLsCntNo());
			vo.setCstId(dto.getCstId());
			vo.setCstName(dto.getCstName());
			vo.setCstMgrId(dto.getCstMgrId());
			vo.setCstMgrNm(dto.getCstMgrNm());
			vo.setCstMgrOrgCd(dto.getCstMgrOrgCd());
			vo.setBuOrgCd(dto.getBuOrgCd());
			vo.setMortgagorNm(dto.getMortgagorNm());
			vo.setMortgagorEndDt(dto.getMortgagorEndDt());
			vo.setHidRisk(dto.getHidRisk());
			vo.setLnkStartLvl(dto.getLnkStartLvl());
			vo.setLnkCompMsg(dto.getLnkCompMsg());
			vo.setLnkCompType(dto.getLnkCompType());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjPrdDtlVO
	 * @return PrjPrdDtlDTO
	 */
	public static PrjPrdDtlDTO toDTO(PrjPrdDtlVO vo) {
		PrjPrdDtlDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdDtlDTO();
			dto.setId(vo.getId());
			dto.setPrjPrdId(vo.getPrjPrdId());//项目产品ID
			dto.setPrdId(vo.getPrdId());//产品ID
			dto.setPrdNm(vo.getPrdNm());//产品名称
			dto.setPrdMdl(vo.getPrdMdl());//产品型号
			dto.setPrdQty(vo.getPrdQty());//产品数量（自动拆分为1）
			dto.setInsStsCd(vo.getInsStsCd());//投保状态（INS0016）
			dto.setPaySchId(vo.getPaySchId());//支付表ID
			dto.setPaySchNo(vo.getPaySchNo());//支付表编号
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setInsStsCdNm(vo.getInsStsCdNm());//投保状态名称
			
			dto.setCertNo(vo.getCertNo());
			dto.setPrdStsCd(vo.getPrdStsCd());//资产状态
			dto.setPrdStsCdNm(vo.getPrdStsCdNm());
			
			dto.setPrdDtlId(vo.getPrdDtlId());//产品明细ID
			dto.setActPrdId(vo.getActPrdId());//实际车辆ID
			dto.setPrjId(vo.getPrjId());//项目ID
			dto.setGpsCardNo(vo.getGpsCardNo());//GPS卡号（重卡）
			dto.setLnkCompId(vo.getLnkCompId());//挂靠公司ID（重卡）
			dto.setLnkCompNm(vo.getLnkCompNm());//挂靠公司名称（重卡）
			dto.setBackDt(vo.getBackDt());//拖回时间
			dto.setFormDt(vo.getFormDt());//转正时间
			dto.setStlDt(vo.getStlDt());//结清时间
			dto.setGpsCardNo2(vo.getGpsCardNo2());//GPS卡号2
			dto.setVin(vo.getVin());//vin
			dto.setPaySchTId(vo.getPaySchTId());//报价版支付表ID
			dto.setPrjLnkCompDTO(PrjLnkCompVOTransform.toDTO(vo.getPrjLnkCompVO()));
			dto.setEngMdl(vo.getEngMdl());
			dto.setGpsTypCd(vo.getGpsTypCd());
			dto.setGpsTypCd2(vo.getGpsTypCd2());
			dto.setGpsMfr(vo.getGpsMfr());
			dto.setGpsMfr2(vo.getGpsMfr2());
			dto.setDueDt(vo.getDueDt());
			dto.setEngNo(vo.getEngNo());
			dto.setPrjPrdVehInfo(PrjPrdVehInfoVOTransform.toDTO(vo.getPrjPrdVehInfo()));
			dto.setPrjPrdBscInfo(PrjPrdBscInfoVOTransform.toDTO(vo.getPrjPrdBscInfo()));
			dto.setPrjPrdPaySchM(PrjPrdPaySchMVOTransform.toDTO(vo.getPrjPrdPaySchM()));
			dto.setActPayTm(vo.getActPayTm());//时间放款时间
			
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setGpsInstallUsr(vo.getGpsInstallUsr());//GPS安装人
			dto.setGpsInsrall(vo.getGpsInstall());//GPS是否安装
			dto.setVinValidRes(vo.getVinValidRes());
			dto.setVinValidResNm(vo.getVinValidResNm());

			dto.setVehNo(vo.getVehNo());

			dto.setCardCity(vo.getCardCity());

			dto.setLnkCompLcvStatus(vo.getLnkCompLcvStatus());
			dto.setLsCntNo(vo.getLsCntNo());
			dto.setCstId(vo.getCstId());
			dto.setCstName(vo.getCstName());
			dto.setCstMgrId(vo.getCstMgrId());
			dto.setCstMgrNm(vo.getCstMgrNm());
			dto.setCstMgrOrgCd(vo.getCstMgrOrgCd());
			dto.setBuOrgCd(vo.getBuOrgCd());
			dto.setMortgagorNm(vo.getMortgagorNm());
			dto.setMortgagorEndDt(vo.getMortgagorEndDt());
			dto.setHidRisk(vo.getHidRisk());
			dto.setLnkStartLvl(vo.getLnkStartLvl());
			dto.setLnkCompMsg(vo.getLnkCompMsg());
			dto.setLnkCompType(vo.getLnkCompType());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjPrdDtlDTO>
	 * @return List<PrjPrdDtlVO>
	 */
	public static List<PrjPrdDtlVO> toVOList(List<PrjPrdDtlDTO> list) {
		List<PrjPrdDtlVO>  voList = new ArrayList<PrjPrdDtlVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdDtlDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjPrdDtlVO>
	 * @return List<PrjPrdDtlDTO>
	 */
	public static List<PrjPrdDtlDTO> toDTOList(List<PrjPrdDtlVO> list) {
		List<PrjPrdDtlDTO>  dtoList = new ArrayList<PrjPrdDtlDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdDtlVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
